<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>index_extend</title>
</head>
<body>
	<script type="text/javascript" src="./commonUtil.js"></script>
	<script type="text/javascript">
	var Super = function () {
		this.name = "super";
		this.age = "27";
	}

	var Suber = function () {
		this.tog = false;
	}
	extend(Suber ,Super);
	var s3 = new Super();
	console.log(s3.name);

	// 原型继承
	//原型继承的特点：即继承了父类的模版，又继承了 父类的原型对象
		
	// 父类
	function Person(name, age){
		this.name = name ; 
		this.age  = age ;
	}
	// 父类的原型对象属性
	Person.prototype.id = 10 ;
	Person.prototype.sayName = function(){alert(this.name);};
	//  类继承(只继承模版,不继承原型对象) (借用构造函数的方式继承)
	// 子类
	// function Boy(sex){
	// 	this.sex = sex ; 
	// }
	// 子类
	function Boy(name , age , sex){
		// call apply
		Person.call(this,name,age); // 1 借用构造函数继承 继承父类的模版
		this.sex = sex ; 
	}

	// 2 原型继承
	// 只剩下 父类的实例 和 父类的原型对象的关系了
	Boy.prototype = new Person(); //继承父类的原型对象

	var b = new Boy('李四' , 20 , '男');
	alert(b.name);
	alert(b.sex);
	b.sayName();


	</script>
</body>
</html>